Return to start page
Systems/Character/Struct Quest Item.j
1 library AStructSystemsCharacterQuestItem requires optional ALibraryCoreDebugMisc, AStructSystemsCharacterAbstractQuest, AStructSystemsCharacterQuest
2
3 struct AQuestItem extends AAbstractQuest
4 //start members
5 private AQuest m_quest
6 //members
7 private questitem m_questItem
8 private integer m_index
9
10 ///! runtextmacro optional A_STRUCT_DEBUG("\"AQuestItem\"")
11
12 //start members
13
14 public method quest takes nothing returns AQuest
15 return this.m_quest
16 endmethod
17
18 public stub method setState takes integer state returns nothing
19 local boolean result
20 call super.setState(state)
21 set result = not this.m_quest.checkQuestItemsForState(state)
22 if (AQuest.isQuestLogUsed()) then
23 if (this.m_questItem == null) then
24 set this.m_questItem = QuestCreateItem(this.m_quest.questLogQuest())
25 call QuestItemSetDescription(this.m_questItem, this.title())
26 endif
27 //call QuestItemSetDescription(this.questLogQuestItem, this.title())
28 call QuestItemSetCompleted(this.m_questItem, state == AAbstractQuest.stateCompleted)
29 if (result) then
30 call FlashQuestDialogButton()
31 call ForceQuestDialogUpdate() //required?
32 endif
33 endif
34 endmethod
35
36 public static method create takes AQuest usedQuest, string description returns thistype
37 local thistype this = thistype.allocate(usedQuest.character(), description)
38 debug if (usedQuest <= 0) then
39 debug call this.print("Invalid used quest.")
40 debug endif
41 //start members
42 set this.m_quest = usedQuest
43 //members
44 if (AQuest.isQuestLogUsed()) then
45 set this.m_questItem = null
46 endif
47 set this.m_index = usedQuest.addQuestItem(this)
48 return this
49 endmethod
50
51 public method onDestroy takes nothing returns nothing
52 call this.m_quest.removeQuestItemByIndex(this.m_index)
53 if (AQuest.isQuestLogUsed()) then
54 if (this.m_questItem != null) then
55 set this.m_questItem = null
56 //Could not destroy quest items!
57 endif
58 endif
59 endmethod
60 endstruct
61
62 endlibrary
63